
Лабораторная работа No2
«Параллельная реализация решения системы линейных алгебраических
уравнений с помощью OpenMP»
ЗАДАНИЕ К ЛАБОРАТОРНОЙ РАБОТЕ
1. Последовательную программу из лабораторной работы 1,
реализующую итерационный алгоритм решения системы линейных
алгебраических уравнений вида Ax=b, распараллелить с помощью
OpenMP. Реализовать два варианта программы:
 Вариант 1: для каждого распараллеливаемого цикла создается
отдельная параллельная секция #pragma omp parallel for,
 Вариант 2: создается одна параллельная секция #pragma omp
parallel, охватывающая весь итерационный алгоритм.
Уделить внимание тому, чтобы при запуске программы на различном
числе OpenMP-потоков решалась одна и та же задача (исходные
данные заполнялись одинаковым образом).
2. Замерить время работы двух вариантов программы при использовании
различного числа процессорных ядер: от 1 до числа доступных в узле.
Построить графики зависимости времени работы программы,
ускорения и эффективности распараллеливания от числа используемых
ядер. Исходные данные и параметры задачи подобрать таким образом,
чтобы решение задачи на одном ядре занимало не менее 30 секунд.
3. Провести исследование на определение оптимальных параметров
#pragma omp for schedule(...) при некотором фиксированном размере
задачи и количестве потоков.
4. На основании полученных результатов сделать вывод о
целесообразности использования первого или второго варианта
программы.
